package com.ruoyi.wechat.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 订单表
 * </p>
 *
 * @author YinHeng
 * @since 2024/2/6
 */
@Data
@TableName("app_order")
public class Order extends BaseEntity {

    /**
     * ID
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;
    /**
     * 外部支付流水号
     */
    private String prepayId;

    /**
     * 支付方式：1、微信小程序支付
     */
    private Integer payMethod;

    /**
     * 订单号
     */
    private String tradeNo;
    /**
     * 使用的优惠券ID
     */
    private Long couponId;
    /**
     * 使用的优惠券名称
     */
    private String couponTitle;
    /**
     * 优惠券抵扣的金额
     */
    private BigDecimal couponAmt;
    /**
     * 使用的会员卡ID
     */
    private Long vipId;
    /**
     * 使用的会员卡名称
     */
    private String vipTitle;
    /**
     * 会员卡折扣比例
     */
    private BigDecimal vipDiscountAmt;
    /**
     * 支付状态
     */
    private Integer payStatus;
    /**
     * 配送状态
     */
    private Integer delvStatus;

    /**
     * 全平台用户id
     */
    private Long accountUserId;

    /**
     * 收件地址
     */
    private Long addrId;
    /**
     * 下单用户昵称
     */
    private String uNick;
    /**
     * 下单号码
     */
    private String uPhone;
    /**
     * 入户临时密码
     */
    private String intoPwd;

    /**
     * 订单负责部门ID
     */
    private Long deptId;

    /**
     * 订单状态,1:订单创建成功、2：支付成功、3：交易完结
     */
    private Integer status;

    /**
     * 订单标识，0：普通订单、1：加急订单
     */
    private Integer tag;

    /**
     * 订单总金额
     */
    private BigDecimal totalAmount;

    /**
     * 实际支付金额
     */
    private BigDecimal realPayAmount;

    /**
     * 预约时间
     */
    private LocalDateTime aptTime;

    /**
     * 附加文件地址
     */
    private String attachFiles;

    /**
     * 订单配送地址
     */
    private String addrDetail;

    /**
     * 下单文字描述
     */
    private String attachText;

    /**
     * 子应用用户id
     */
    private String appUserId;

    /**
     * 是否删除，1：是、0：否
     */
    private Integer isDeleted;

    /**
     * 支付成功时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime payTime;

    /**
     * 发货时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime deliverTime;

    /**
     * 交易成功时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime successTime;

    /**
     * 订单关闭时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime closeTime;

    /**
     * 订单类型，1：配送单、2：购物单、4：补款、
     */
    private Integer type;
    /**
     * 商品类别
     */
    private Integer category;

    /**
     * 服务员ID
     */
    private Long waiterId;
    /**
     * 服务员
     */
    private String waiter;
    /**
     * 服务员手机号
     */
    private String waiterPhone;

    /**
     * 服务员核实后的价格
     */
    private BigDecimal verifyAmount;

    /**
     * 接单时间
     */
    private LocalDateTime takeTime;

    /**
     * 取件备注
     */
    private String pickRmk;

    /**
     * 取件时间
     */
    private LocalDateTime pickTime;

    /**
     * 送达备注
     */
    private String arriveRmk;

    /**
     * 送达照片
     */
    private String arrivePhotos;

    /**
     * 送达时间
     */
    private LocalDateTime arriveTime;

    /**
     * 配送方式
     */
    private Integer delvMode;


}
